﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FrbaCommerce.Calificar_Vendedor
{
    public partial class CalificarVendedor : Form
    {
        Usuario usuarioLogueado { get; set; }
        DataTable data;
    
        public CalificarVendedor(Usuario user)
        {
            InitializeComponent();
            this.usuarioLogueado = user;
            if (this.data == null) 
            {
                cargarDatos();
            }
            cargarGrid();
        }

        public Boolean cargarDatos() 
        {
            this.data = this.usuarioLogueado.getComprasACalificar();
            this.dataGridView.DataSource = this.data;
            return (!isEmpty(this.data));
        }
       
        private void cargarGrid() 
        {
        //Mostrar compras del usuario sin calificacion : BitacoraCompras + BitacoraOfertas
        //La calificacion se persiste en la bitacoraCalificacion
        //La reputacion se puede obtener con una func SQL que recorre la bitacoraCalificacion

            DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
            buttonColumn.Text = "Calificar";
            buttonColumn.UseColumnTextForButtonValue = true;
            buttonColumn.DefaultCellStyle.ForeColor = Color.Blue;
            dataGridView.Columns.Add(buttonColumn);
            this.dataGridView.CellContentClick += new DataGridViewCellEventHandler(dataGridView_Calificar_Click);
            this.dataGridView.AutoResizeColumns();
        }

        private void dataGridView_Calificar_Click(object sender, DataGridViewCellEventArgs e) 
        {
            decimal cod_publi = Convert.ToDecimal(this.dataGridView.Rows[e.RowIndex].Cells[1].Value.ToString());
            String vendedor = (String)this.dataGridView.Rows[e.RowIndex].Cells[2].Value;
            AltaCalificacion calificacion = new AltaCalificacion(cod_publi, vendedor, this);
            calificacion.ShowDialog();
        }
        

        private Boolean isEmpty(DataTable data)
        {
            return (data.Rows.Count == 0);
        }

        public Usuario getUsuarioLogueado()
        {
            return this.usuarioLogueado;
        }

        public void actualizarGrid () 
        {
            this.cargarDatos();
           // this.cargarGrid();
        }
    }
}
